// // pages/goods_detail/goods_detail.js
// Page({

//   /**
//    * 页面的初始数据
//    */
//   data: {
//     goodsData:{}
//   },



//   /**
//    * 生命周期函数--监听页面加载
//    */
//   onLoad: function (options) {
//     console.log(options);
//     const {goods_id} = options;
//     this.getGoodsDetail(goods_id);

//   },

//   /**
//    * 生命周期函数--监听页面初次渲染完成
//    */
//   onReady: function () {

//   },

//   //全局商品详情数据
//   goodsInfo:{},

//   getGoodsDetail: async function(goods_id){
//     const {data} = await wx.goodsApi.getGoodsDetail({goods_id});
//     this.goodsInfo = data.message;
//     console.log(data);
    
//     this.setData({
//       goodsData:this.goodsInfo

//     })
    

//   },

//   /**
//    * 生命周期函数--监听页面显示
//    */
//   onShow: function () {

//   },

//   /**
//    * 生命周期函数--监听页面隐藏
//    */
//   onHide: function () {

//   },

//   /**
//    * 生命周期函数--监听页面卸载
//    */
//   onUnload: function () {

//   },

//   /**
//    * 页面相关事件处理函数--监听用户下拉动作
//    */
//   onPullDownRefresh: function () {

//   },

//   /**
//    * 页面上拉触底事件的处理函数
//    */
//   onReachBottom: function () {

//   },

//   /**
//    * 用户点击右上角分享
//    */
//   onShareAppMessage: function () {

//   }
// })




// pages/goods_detail/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    goodsData:{},

    isCollect:false
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) { //goods_id=47868  {goods_id:47868}
    console.log("商品详情-->", options);
    const { goods_id } = options; //{goods_id:47868}
    this.getGoodsDetail(goods_id);
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {//A->b->c
    //全局函数  获取包含当前页面的所有页面调用栈(示例:A页面->B页面->c页面,最终,获取到的是[A,B,C])
    console.log(getCurrentPages())
    //获取所有页面调用栈 是一个数组 [vt,vt,vt]
    let pages = getCurrentPages();
    //通过页面调用栈函数获取当前页的vt
    let currentPage = pages[pages.length-1];
    //通过当前页面的对象vt获取当页面上的页面参数 options
    let op = currentPage.options;
    console.log("opaction===>onShow",op)
  },

  //定义一个全局商品详情数据
  goodsInfo:{},
  //获取当前商品的商品详情
  getGoodsDetail: async function (goods_id) {
    const { data } = await wx.goodsApi.getGoodsDetail({ goods_id });
    this.goodsInfo = data.message;
    console.log(data);
    // let goodsData = {
    //   pics: data.message.pics,
    //   goods_price: data.message.goods_price,
    //   goods_name: data.message.goods_name,
    //   goods_introduce: data.message.goods_introduce
    // }
    //解构赋值
    let {pics,goods_price,goods_name,goods_introduce} = data.message;
    this.setData({
      goodsData: {
        pics,goods_price,goods_name,goods_introduce
      }
    });
    

    //收藏
    let collect = wx.getStorageSync('collect') || [];
    let index = collect.findIndex(item=>item.goods_id === this.goodsInfo.goods_id);

    if(index !== -1){
      //改变样式
      this.setData({
        isCollect:true
      })
    }
  },

  //轮播图点击事件
  handlePrevewImage(e){
    //获取所有轮播图数据的图片url地址
    let urls= this.data.goodsData.pics.map(item=>item.pics_mid);
    //通过点击事件传递当前轮播图片的url地址
    let {url} = e.currentTarget.dataset;
    //展示大图预览功能
    wx.previewImage({
      urls,//所有图片列表
      current: url //当前要展示的图片   默认值: urls 的第一张
    })
  },

  //添加收藏
  handleCollect(e){
    
    //收藏
    let isCollect = false;
    let collect = wx.getStorageSync('collect') || [];
    let index = collect.findIndex(item=>item.goods_id === this.goodsInfo.goods_id);

    if(index !== -1){//已经被收藏
      //改变样式

        isCollect=false;
      //删除缓存
        collect.splice(index,1);
        wx.showToast({
          title: '移除收藏',
        })

    }else{
      isCollect=true;
      //添加商品信息到收藏数组
      collect.push(this.goodsInfo);
      wx.showToast({
        title:"添加收藏成功",
      })
    };
    this.setData({
      isCollect
    });
    wx.setStorageSync('collect', collect)
  },
  
  //加入购物车功能
  handleCartAdd(){
    //点击了加入购物车按钮
    /**
     * 1 获取购物车数据 微信缓存 //存数据 ===>  [] {}
     * 2 判断? 购物车数据中是否有 当前商品
     * 3 如果有  让购物车中当前数据的数量++  (num++)
     * 4 如果没有  在购物车数据中 增加当前的数据 并且把num数量置1
     *   优化  当用户操作之后 弹出提示
     * 5 将更新后的数据写入缓存
     */

    //  let cart = wx.getStorage('key'); //异步
     let cart = wx.getStorageSync('cart') || []; //同步
      console.log("购物车数据",cart)
      
      //判断购物车中是否拥有当前商品信息
      //通过id获取商品是否存在购物车中,如果存在 index的值为数组下标,如果不存在 则为 -1
      let index = cart.findIndex(item=>item.goods_id === this.goodsInfo.goods_id)
      if(index === -1){
        //如果购物车中没有当前数据  将当前的商品信息加入到购物车
        this.goodsInfo.num = 1;
        cart.push(this.goodsInfo);
      }else{//如果购物车中存在当前商品
        cart[index].num++;
      }
      wx.setStorageSync('cart', cart);
      //弹出提示框
      wx.showToast({
        title: '加入购物车成功',
        icon: 'success',
        //为了防止用户疯狂点击按钮
        mask: true
      })
  }
})